home *** CD-ROM | disk | FTP | other *** search
- /*
- File: ClockFrm.h
-
- Contains: xxx put contents here xxx
-
- Owned by: Richard Rodseth
-
- Copyright: © 1995 by Apple Computer, Inc., all rights reserved.
-
- Change History (most recent first):
-
- <6> 10/18/95 RR 1289153: Recover from exceptions creating
- windows. Store fPlatformWindow pointer in
- ClockFrame, so we can get to it even if
- odWindow isn't successfully created
- <5> 9/12/95 RR Various activation problems. Added a
- floating window
- <4> 9/1/95 RR # 1244639 SetShouldDeleteWindow
- <3> 7/7/95 RR Some refactoring. Fix
- CreatePropObjSpecifier to deal with
- non-persistent frame. Set source frame of
- dialogs.
- <2> 6/3/95 TJ Added #includes for compile with out PCH
- <1> 5/31/95 RR first checked in
-
- To Do:
- */
-
- #ifndef _CLOCKFRM_
- #define _CLOCKFRM_
-
- #ifndef SOM_ODSession_xh
- #include <ODSessn.xh>
- #endif
-
- #ifndef SOM_ODShape_xh
- #include <Shape.xh>
- #endif
-
- #ifndef SOM_ODArbitrator_xh
- #include <Arbitrat.xh>
- #endif
-
- #ifndef SOM_ODDispatcher_xh
- #include <Disptch.xh>
- #endif
-
- //=========================================================================
- // Classes Defined Here
- //=========================================================================
-
- class ClockFrame;
- class ClockTimeFrame;
- class ClockDialogFrame;
- class ClockSynchroDialogFrame;
- class ClockAlarmSettingsDialogFrame;
- class ClockDisplaySettingsDialogFrame;
-
- //=========================================================================
- // Classes Used Here
- //=========================================================================
-
- class ClockPart;
- class ODFocusSet; //$$$$$
-
- //=========================================================================
- // Clock Frame
- //=========================================================================
-
- class ClockFrame
- {
- public:
- ClockFrame();
- ~ClockFrame();
- void InitClockFrame(Environment* ev,
- ODSession* session,
- ODFrame* frame,
- ClockPart* clockPart);
-
- virtual void Draw(Environment* ev, ODFacet* facet, ODShape* invalShape) { };
- virtual ODBoolean HandleMouseDown(Environment* ev, ODFacet* facet, ODEventData* event) { return kODFalse; };
- virtual ODBoolean HandleMouseUp(Environment* ev, ODFacet* facet, ODEventData* event) { return kODFalse; };
- virtual void ActivatingWindow(Environment* ev, ODFacet* facet, ODEventData* event);
- virtual void DeactivatingWindow(Environment* ev, ODFacet* facet, ODEventData* event);
- virtual void AcquiredRequestedFoci(Environment* ev) { };
- virtual void MouseEnter(Environment* ev, ODFacet* facet, ODPoint* where);
- virtual void MouseWithin(Environment* ev, ODFacet* facet, ODPoint* where);
- virtual void MouseLeave(Environment* ev, ODFacet* facet);
- virtual void Activate(Environment* ev);
- virtual void AdjustMenus(Environment *ev);
- virtual ODBoolean HandleMenuEvent(Environment* ev, ODEventData* event);
- virtual void Idle(Environment* ev, ODEventData* event) { };
- virtual void FacetAdded(Environment* ev, ODFacet* facet);
- virtual ODID ViewInWindow(Environment *ev) { return 0; };
-
- virtual ODBoolean BeginRelinquishFocus(Environment *ev,
- ODTypeToken focus,
- ODFrame* proposedFrame);
- virtual void CommitRelinquishFocus(Environment *ev,
- ODTypeToken focus,
- ODFrame* proposedFrame);
- virtual void AbortRelinquishFocus(Environment *ev,
- ODTypeToken focus,
- ODFrame* proposedFrame);
- virtual void FocusAcquired(Environment *ev,
- ODTypeToken focus);
- virtual void FocusLost(Environment *ev,
- ODTypeToken focus, ODFrame* proposedFrame);
- virtual void AcquiredSelectionFocus(Environment* ev);
- virtual void LostSelectionFocus(Environment* ev, ODFrame* proposedFrame);
-
- virtual void Add(Environment* ev);
- virtual void Connect(Environment* ev);
- virtual void Remove(Environment* ev);
- virtual void Close(Environment* ev);
- virtual void FrameShapeChanged(Environment* ev) {};
-
- void SetShouldDeleteWindow(ODBoolean shouldDelete) { fShouldDeleteWindow = shouldDelete; };
- void SetPlatformWindow(ODPlatformWindow window) { fPlatformWindow = window; };
- virtual void DisposePlatformWindow(Environment *ev);
- virtual void SuspendFocus(Environment* ev);
- virtual void ResumeFocus(Environment* ev);
- virtual void SuspendProcess(Environment* ev);
- virtual void ResumeProcess(Environment* ev);
- void SetPart(Environment* ev, ClockPart* clockPart) { fClockPart = clockPart; };
- virtual void Adjust(Environment* ev) {};
-
-
- protected:
- ODSession* fSession;
- ODArbitrator* fArbitrator;
- ODDispatcher* fDispatcher;
- ODWindowState* fWindowState;
- ODTypeToken fSelectionFocus;
- ODTypeToken fMenuFocus;
- ODTypeToken fKeyFocus;
- ODTypeToken fModalFocus;
-
- ODFrame* fFrame;
- ClockPart* fClockPart;
- Cursor fArrowCursor; // pointer cursor
- ODFocusSet* fFocusSet;
- ODBoolean fHasFoci; // Does this frame have its focus set?
- ODBoolean fNeedsFoci; // should this be activated when its window is activated?
- ODID fWindowID; // ID of View As Window window
- ODPlatformWindow fPlatformWindow; // The platform window for this (root) frame
- ODBoolean fShouldDeleteWindow; // Delete platform window when closing/removing
- ODBoolean fShouldHideOnSuspend;
- ODBoolean fShowWindowOnResume;
- ODBoolean fShowWindowOnFocus;
- ODBoolean fInBackground;
- };
-
- //=========================================================================
- // ClockTimeFrame
- //=========================================================================
-
- class ClockTimeFrame : public ClockFrame
- {
- public:
- ClockTimeFrame();
- virtual ~ClockTimeFrame();
- void InitClockTimeFrame(Environment* ev,
- ODSession* session,
- ODFrame* frame,
- ClockPart* clockPart);
-
- virtual void Draw(Environment* ev, ODFacet* facet, ODShape* invalShape);
- void DrawClockFace(Environment* ev, ODFacet* facet);
- void DrawTime(Environment* ev, ODFacet* facet, ODULong tickCount);
- void UpdateTime(Environment* ev, ODFacet* facet, ODULong tickCount);
-
- void DrawAnalogFace(Environment* ev, ODFacet* facet);
- void DrawDigitalTime(Environment* ev, ODFacet* facet, ODULong tickCount);
- void DrawClockHands(Environment* ev, ODFacet* facet, ODULong tickCount);
- void UpdateClockHands(Environment* ev, ODFacet* facet, ODULong tickCount);
- void DrawHourHand(Rect* clockRect, Point* centerPoint, ODSShort radius, ODSShort hour, ODSShort minute);
- void DrawMinuteHand(Rect* clockRect, Point* centerPoint, ODSShort radius, ODSShort minute);
- void DrawSecondHand(Rect* clockRect, Point* centerPoint, ODSShort radius, ODSShort second);
-
-
-
-
- virtual void Idle(Environment* ev, ODEventData* event);
- virtual ODBoolean HandleMouseDown(Environment* ev, ODFacet* facet, ODEventData* event);
- virtual ODBoolean HandleMouseUp(Environment* ev, ODFacet* facet, ODEventData* event);
- virtual void MouseEnter(Environment* ev, ODFacet* facet, ODPoint* where);
- virtual void AcquiredRequestedFoci(Environment* ev);
- virtual void AdjustFrameShape(Environment* ev);
- virtual void FacetAdded(Environment* ev, ODFacet* facet);
- virtual void AdjustMenus(Environment *ev);
- virtual ODBoolean HandleMenuEvent(Environment* ev, ODEventData* event);
- virtual ODID ViewInWindow(Environment *ev);
- virtual void Add(Environment* ev);
- virtual void Connect(Environment* ev);
- virtual void Remove(Environment* ev);
- virtual void Close(Environment* ev);
- virtual void FrameShapeChanged(Environment* ev);
- virtual void FitToFrameShape(Environment* ev);
- virtual void Adjust(Environment* ev);
-
- private:
- Cursor fCrossCursor; // cross cursor
- ODSLong fLastTime; // tick count last time we drew time
- };
-
- //=========================================================================
- // ClockDialogFrame
- //=========================================================================
-
- class ClockDialogFrame : public ClockFrame
- {
- public:
- ClockDialogFrame();
- virtual ~ClockDialogFrame();
- void InitClockDialogFrame(Environment* ev,
- ODSession* session,
- ODFrame* frame,
- ClockPart* clockPart);
-
- virtual void Draw(Environment* ev, ODFacet* facet, ODShape* invalShape);
- virtual void Idle(Environment* ev, ODEventData* event);
-
- virtual void Add(Environment* ev);
- virtual void Connect(Environment* ev);
- virtual void Remove(Environment* ev);
- virtual void Close(Environment* ev);
-
- private:
- };
-
- //=========================================================================
- // ClockSynchroDialogFrame
- //=========================================================================
-
- class ClockSynchroDialogFrame : public ClockDialogFrame
- {
- public:
- ClockSynchroDialogFrame();
- virtual ~ClockSynchroDialogFrame();
- void InitClockSynchroDialogFrame(Environment* ev,
- ODSession* session,
- ODFrame* frame,
- ClockPart* clockPart);
-
- virtual ODBoolean HandleMouseDown(Environment* ev, ODFacet* facet, ODEventData* event);
- virtual void AdjustMenus(Environment *ev);
-
- private:
- };
-
- //=========================================================================
- // ClockAlarmSettingsDialogFrame
- //=========================================================================
-
- class ClockAlarmSettingsDialogFrame : public ClockDialogFrame
- {
- public:
- ClockAlarmSettingsDialogFrame();
- virtual ~ClockAlarmSettingsDialogFrame();
- void InitClockAlarmSettingsDialogFrame(Environment* ev,
- ODSession* session,
- ODFrame* frame,
- ClockPart* clockPart);
-
- virtual ODBoolean HandleMouseDown(Environment* ev, ODFacet* facet, ODEventData* event);
-
-
- private:
- };
-
- //=========================================================================
- // ClockDisplaySettingsDialogFrame
- //=========================================================================
-
- class ClockDisplaySettingsDialogFrame : public ClockDialogFrame
- {
- public:
- ClockDisplaySettingsDialogFrame();
- virtual ~ClockDisplaySettingsDialogFrame();
- void InitClockDisplaySettingsDialogFrame(Environment* ev,
- ODSession* session,
- ODFrame* frame,
- ClockPart* clockPart);
-
- virtual ODBoolean HandleMouseDown(Environment* ev, ODFacet* facet, ODEventData* event);
- virtual void Add(Environment* ev);
- virtual void Adjust(Environment* ev);
-
-
- private:
- };
-
- #endif // _CLOCKFRM_
-